{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "Keras_efficientnet_transfer_learning.ipynb",
      "version": "0.3.2",
      "provenance": [],
      "collapsed_sections": [],
      "include_colab_link": true
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "accelerator": "GPU"
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github",
        "colab_type": "text"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/Tony607/efficientnet_keras_transfer_learning/blob/master/Keras_efficientnet_transfer_learning.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "G7Evp4GOUt7Z",
        "colab_type": "text"
      },
      "source": [
        "# [How to do Transfer learning with Efficientnet](https://www.dlology.com/blog/transfer-learning-with-efficientnet/) | DLology"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "qYbI0TGpL6Jd",
        "colab_type": "text"
      },
      "source": [
        "## Imports"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "e4wFQJkBiFWE",
        "colab_type": "code",
        "outputId": "fae7b330-fdec-46c6-b680-fc2aef6c2f66",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 325
        }
      },
      "source": [
        "# Downgrade pillow to avoid `UserWarning: Possibly corrupt EXIF data.`\n",
        "!pip install pillow==4.0.0"
      ],
      "execution_count": 4,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Collecting pillow==4.0.0\n",
            "\u001b[?25l  Downloading https://files.pythonhosted.org/packages/37/e8/b3fbf87b0188d22246678f8cd61e23e31caa1769ebc06f1664e2e5fe8a17/Pillow-4.0.0-cp36-cp36m-manylinux1_x86_64.whl (5.6MB)\n",
            "\u001b[K     |████████████████████████████████| 5.6MB 2.7MB/s \n",
            "\u001b[?25hRequirement already satisfied: olefile in /usr/local/lib/python3.6/dist-packages (from pillow==4.0.0) (0.46)\n",
            "\u001b[31mERROR: torchvision 0.3.0 has requirement pillow>=4.1.1, but you'll have pillow 4.0.0 which is incompatible.\u001b[0m\n",
            "\u001b[31mERROR: scikit-image 0.15.0 has requirement pillow>=4.3.0, but you'll have pillow 4.0.0 which is incompatible.\u001b[0m\n",
            "\u001b[31mERROR: albumentations 0.1.12 has requirement imgaug<0.2.7,>=0.2.5, but you'll have imgaug 0.2.9 which is incompatible.\u001b[0m\n",
            "Installing collected packages: pillow\n",
            "  Found existing installation: Pillow 4.3.0\n",
            "    Uninstalling Pillow-4.3.0:\n",
            "      Successfully uninstalled Pillow-4.3.0\n",
            "Successfully installed pillow-4.0.0\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "display_data",
          "data": {
            "application/vnd.colab-display-data+json": {
              "pip_warning": {
                "packages": [
                  "PIL"
                ]
              }
            }
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "SmzQmZdKDfSF",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "from tensorflow.keras import models\n",
        "from tensorflow.keras import layers\n",
        "from tensorflow.keras import optimizers\n",
        "import os\n",
        "import glob\n",
        "import shutil\n",
        "import sys\n",
        "import numpy as np\n",
        "from skimage.io import imread\n",
        "import matplotlib.pyplot as plt\n",
        "from IPython.display import Image\n",
        "%matplotlib inline"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "VpdwDI3vL8sQ",
        "colab_type": "text"
      },
      "source": [
        "## Hyper parameters"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "mp4TOw5rJs0M",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "batch_size = 48\n",
        "\n",
        "width = 150\n",
        "height = 150\n",
        "epochs = 20\n",
        "NUM_TRAIN = 2000\n",
        "NUM_TEST = 1000\n",
        "dropout_rate = 0.2\n",
        "input_shape = (height, width, 3)"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "R9S4UyubKPUc",
        "colab_type": "text"
      },
      "source": [
        "## Clone **efficientnet** repo"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "mnyJvYF_yXLo",
        "colab_type": "code",
        "outputId": "1bb2c8ea-2ef2-4150-8093-2b07d6b68cff",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 181
        }
      },
      "source": [
        "import os\n",
        "%cd /content\n",
        "if not os.path.isdir(\"efficientnet_keras_transfer_learning\"):\n",
        "  !git clone https://github.com/Tony607/efficientnet_keras_transfer_learning\n",
        "%cd efficientnet_keras_transfer_learning/"
      ],
      "execution_count": 7,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "/content\n",
            "Cloning into 'efficientnet_keras_transfer_learning'...\n",
            "remote: Enumerating objects: 168, done.\u001b[K\n",
            "remote: Counting objects: 100% (168/168), done.\u001b[K\n",
            "remote: Compressing objects: 100% (71/71), done.\u001b[K\n",
            "remote: Total 168 (delta 97), reused 161 (delta 93), pack-reused 0\u001b[K\n",
            "Receiving objects: 100% (168/168), 5.34 MiB | 29.58 MiB/s, done.\n",
            "Resolving deltas: 100% (97/97), done.\n",
            "/content/efficientnet_keras_transfer_learning\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "oO7kxxRaMC2q",
        "colab_type": "text"
      },
      "source": [
        "## Import efficientnet and load the conv base model"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "vq00KoYUzOSc",
        "colab_type": "code",
        "outputId": "ff3e2db9-f3ec-47d0-afa7-edac55753e83",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 35
        }
      },
      "source": [
        "# Options: EfficientNetB0, EfficientNetB1, EfficientNetB2, EfficientNetB3\n",
        "# Higher the number, the more complex the model is.\n",
        "from efficientnet import EfficientNetB0 as Net\n",
        "from efficientnet import center_crop_and_resize, preprocess_input"
      ],
      "execution_count": 8,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Using TensorFlow backend.\n"
          ],
          "name": "stderr"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "PeETTKsszRj0",
        "colab_type": "code",
        "outputId": "47cfda99-d165-4a81-e78e-14f356c1e26b",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 237
        }
      },
      "source": [
        "# loading pretrained conv base model\n",
        "conv_base = Net(weights='imagenet', include_top=False, input_shape=input_shape)"
      ],
      "execution_count": 9,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/resource_variable_ops.py:435: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\n",
            "Instructions for updating:\n",
            "Colocations handled automatically by placer.\n",
            "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/function.py:1007: calling Graph.create_op (from tensorflow.python.framework.ops) with compute_shapes is deprecated and will be removed in a future version.\n",
            "Instructions for updating:\n",
            "Shapes are always computed; don't use the compute_shapes as it has no effect.\n",
            "WARNING:tensorflow:From /content/efficientnet_keras_transfer_learning/efficientnet/layers.py:30: div (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n",
            "Instructions for updating:\n",
            "Deprecated in favor of operator or tf.math.divide.\n",
            "Downloading data from https://github.com/qubvel/efficientnet/releases/download/v0.0.1/efficientnet-b0_imagenet_1000_notop.h5\n",
            "16719872/16717576 [==============================] - 0s 0us/step\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "WONAK_7CKY6z",
        "colab_type": "text"
      },
      "source": [
        "## Download and extract `dog_vs_cat` dataset"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "8Tp1YzND3dUs",
        "colab_type": "code",
        "outputId": "9783a347-71d8-44bd-cd7d-a201fa53b5f1",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 217
        }
      },
      "source": [
        "if not os.path.isfile(\"kagglecatsanddogs_3367a.zip\"):\n",
        "  !wget https://download.microsoft.com/download/3/E/1/3E1C3F21-ECDB-4869-8368-6DEBA77B919F/kagglecatsanddogs_3367a.zip\n",
        "  !unzip -qq kagglecatsanddogs_3367a.zip -d dog_vs_cat\n",
        "else:\n",
        "  print(\"dataset already exist.\")"
      ],
      "execution_count": 10,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "--2019-06-09 01:29:04--  https://download.microsoft.com/download/3/E/1/3E1C3F21-ECDB-4869-8368-6DEBA77B919F/kagglecatsanddogs_3367a.zip\n",
            "Resolving download.microsoft.com (download.microsoft.com)... 184.28.88.168, 2600:1408:8400:3a9::e59, 2600:1408:8400:385::e59\n",
            "Connecting to download.microsoft.com (download.microsoft.com)|184.28.88.168|:443... connected.\n",
            "HTTP request sent, awaiting response... 200 OK\n",
            "Length: 824894548 (787M) [application/octet-stream]\n",
            "Saving to: ‘kagglecatsanddogs_3367a.zip’\n",
            "\n",
            "kagglecatsanddogs_3 100%[===================>] 786.68M   126MB/s    in 5.7s    \n",
            "\n",
            "2019-06-09 01:29:10 (138 MB/s) - ‘kagglecatsanddogs_3367a.zip’ saved [824894548/824894548]\n",
            "\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "4OdmlrfP40sc",
        "colab_type": "code",
        "outputId": "f691574d-bd32-49ec-eea9-65911bd87443",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 217
        }
      },
      "source": [
        "!ls dog_vs_cat/PetImages/\n",
        "!ls dog_vs_cat/PetImages/Cat -l -t | head -10"
      ],
      "execution_count": 11,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Cat  Dog\n",
            "total 408428\n",
            "-rw-r--r-- 1 root root   34297 Feb 10  2017 9955.jpg\n",
            "-rw-r--r-- 1 root root   26013 Feb 10  2017 9956.jpg\n",
            "-rw-r--r-- 1 root root   26293 Feb 10  2017 9957.jpg\n",
            "-rw-r--r-- 1 root root   36293 Feb 10  2017 9958.jpg\n",
            "-rw-r--r-- 1 root root   36690 Feb 10  2017 9959.jpg\n",
            "-rw-r--r-- 1 root root   15262 Feb 10  2017 9960.jpg\n",
            "-rw-r--r-- 1 root root   49493 Feb 10  2017 9961.jpg\n",
            "-rw-r--r-- 1 root root   14785 Feb 10  2017 9962.jpg\n",
            "-rw-r--r-- 1 root root   39717 Feb 10  2017 9963.jpg\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "SOXcZDirjoL4",
        "colab_type": "code",
        "outputId": "bf33b54a-3aae-4429-aa4f-6e17104158ac",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 54
        }
      },
      "source": [
        "# The path to the directory where the original\n",
        "# dataset was uncompressed\n",
        "original_dataset_dir = './dog_vs_cat/PetImages'\n",
        "\n",
        "cat_images = glob.glob(os.path.join(original_dataset_dir, \"Cat\", '*.jpg'))\n",
        "dog_images = glob.glob(os.path.join(original_dataset_dir, \"Dog\", '*.jpg'))\n",
        "print(\"total cat images: {}\\n\\rtotal dog images: {}\".format(len(cat_images), len(dog_images)))"
      ],
      "execution_count": 12,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "total cat images: 12500\n",
            "\rtotal dog images: 12500\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "IBqtrHVu5iUE",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "\n",
        "\n",
        "# The directory where we will\n",
        "# store our smaller dataset\n",
        "base_dir = './data/dog_vs_cat_small'\n",
        "os.makedirs(base_dir, exist_ok=True)\n",
        "\n",
        "# Directories for our training,\n",
        "# validation and test splits\n",
        "train_dir = os.path.join(base_dir, 'train')\n",
        "os.makedirs(train_dir, exist_ok=True)\n",
        "validation_dir = os.path.join(base_dir, 'validation')\n",
        "os.makedirs(validation_dir, exist_ok=True)\n",
        "test_dir = os.path.join(base_dir, 'test')\n",
        "os.makedirs(test_dir, exist_ok=True)\n",
        "\n",
        "# Directory with our training cat pictures\n",
        "train_cats_dir = os.path.join(train_dir, 'cats')\n",
        "os.makedirs(train_cats_dir, exist_ok=True)\n",
        "\n",
        "# Directory with our training dog pictures\n",
        "train_dogs_dir = os.path.join(train_dir, 'dogs')\n",
        "os.makedirs(train_dogs_dir, exist_ok=True)\n",
        "\n",
        "# Directory with our validation cat pictures\n",
        "validation_cats_dir = os.path.join(validation_dir, 'cats')\n",
        "os.makedirs(validation_cats_dir, exist_ok=True)\n",
        "\n",
        "# Directory with our validation dog pictures\n",
        "validation_dogs_dir = os.path.join(validation_dir, 'dogs')\n",
        "os.makedirs(validation_dogs_dir, exist_ok=True)\n",
        "\n",
        "# Directory with our validation cat pictures\n",
        "test_cats_dir = os.path.join(test_dir, 'cats')\n",
        "os.makedirs(test_cats_dir, exist_ok=True)\n",
        "\n",
        "# Directory with our validation dog pictures\n",
        "test_dogs_dir = os.path.join(test_dir, 'dogs')\n",
        "os.makedirs(test_dogs_dir, exist_ok=True)\n",
        "\n",
        "# Copy first NUM_TRAIN//2 cat images to train_cats_dir\n",
        "fnames = cat_images[:NUM_TRAIN//2]\n",
        "for fname in fnames:\n",
        "    dst = os.path.join(train_cats_dir, os.path.basename(fname))\n",
        "    shutil.copyfile(fname, dst)\n",
        "\n",
        "offset = NUM_TRAIN//2\n",
        "# Copy next NUM_TEST //2 cat images to validation_cats_dir\n",
        "fnames = cat_images[offset:offset + NUM_TEST // 2]\n",
        "for fname in fnames:\n",
        "    dst = os.path.join(validation_cats_dir, os.path.basename(fname))\n",
        "    shutil.copyfile(fname, dst)\n",
        "offset = offset + NUM_TEST // 2\n",
        "# Copy next NUM_TRAIN//2 cat images to test_cats_dir\n",
        "fnames = cat_images[offset:offset + NUM_TEST // 2]\n",
        "for fname in fnames:\n",
        "    dst = os.path.join(test_cats_dir, os.path.basename(fname))\n",
        "    shutil.copyfile(fname, dst)\n",
        "\n",
        "\n",
        "# Copy first NUM_TRAIN//2 dog images to train_dogs_dir\n",
        "fnames = dog_images[:NUM_TRAIN//2]\n",
        "for fname in fnames:\n",
        "    dst = os.path.join(train_dogs_dir, os.path.basename(fname))\n",
        "    shutil.copyfile(fname, dst)\n",
        "\n",
        "offset = NUM_TRAIN//2\n",
        "# Copy next NUM_TEST // 2 dog images to validation_dogs_dir\n",
        "fnames = dog_images[offset:offset + NUM_TEST // 2]\n",
        "for fname in fnames:\n",
        "    dst = os.path.join(validation_dogs_dir, os.path.basename(fname))\n",
        "    shutil.copyfile(fname, dst)\n",
        "offset = offset + NUM_TEST // 2\n",
        "\n",
        "# Copy next NUM_TEST // 2 dog images to test_dogs_dir\n",
        "fnames = dog_images[offset:offset + NUM_TEST // 2]\n",
        "for fname in fnames:\n",
        "    dst = os.path.join(test_dogs_dir, os.path.basename(fname))\n",
        "    shutil.copyfile(fname, dst)"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "WyD74zWe56WK",
        "colab_type": "code",
        "outputId": "2ad6848a-8237-4f3b-c8d0-12e01526dd45",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 126
        }
      },
      "source": [
        "print('total training cat images:', len(os.listdir(train_cats_dir)))\n",
        "print('total training dog images:', len(os.listdir(train_dogs_dir)))\n",
        "print('total validation cat images:', len(os.listdir(validation_cats_dir)))\n",
        "print('total validation dog images:', len(os.listdir(validation_dogs_dir)))\n",
        "print('total test cat images:', len(os.listdir(test_cats_dir)))\n",
        "print('total test dog images:', len(os.listdir(test_dogs_dir)))"
      ],
      "execution_count": 14,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "total training cat images: 1000\n",
            "total training dog images: 1000\n",
            "total validation cat images: 500\n",
            "total validation dog images: 500\n",
            "total test cat images: 500\n",
            "total test dog images: 500\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "D9MM2WA49zyj",
        "colab_type": "code",
        "outputId": "0621c81c-d68b-40fd-e7e6-1a87a9fe23ca",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 54
        }
      },
      "source": [
        "from tensorflow.keras.preprocessing.image import ImageDataGenerator\n",
        "\n",
        "train_datagen = ImageDataGenerator(\n",
        "      rescale=1./255,\n",
        "      rotation_range=40,\n",
        "      width_shift_range=0.2,\n",
        "      height_shift_range=0.2,\n",
        "      shear_range=0.2,\n",
        "      zoom_range=0.2,\n",
        "      horizontal_flip=True,\n",
        "      fill_mode='nearest')\n",
        "\n",
        "# Note that the validation data should not be augmented!\n",
        "test_datagen = ImageDataGenerator(rescale=1./255)\n",
        "\n",
        "train_generator = train_datagen.flow_from_directory(\n",
        "        # This is the target directory\n",
        "        train_dir,\n",
        "        # All images will be resized to target height and width.\n",
        "        target_size=(height, width),\n",
        "        batch_size=batch_size,\n",
        "        # Since we use categorical_crossentropy loss, we need categorical labels\n",
        "        class_mode='categorical')\n",
        "\n",
        "validation_generator = test_datagen.flow_from_directory(\n",
        "        validation_dir,\n",
        "        target_size=(height, width),\n",
        "        batch_size=batch_size,\n",
        "        class_mode='categorical')"
      ],
      "execution_count": 15,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Found 2000 images belonging to 2 classes.\n",
            "Found 1000 images belonging to 2 classes.\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "lgjoz26l-HfD",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 92
        },
        "outputId": "45b9c73c-e278-4eb8-ad7c-c97b1509a2ab"
      },
      "source": [
        "model = models.Sequential()\n",
        "model.add(conv_base)\n",
        "model.add(layers.GlobalMaxPooling2D(name=\"gap\"))\n",
        "# model.add(layers.Flatten(name=\"flatten\"))\n",
        "if dropout_rate > 0:\n",
        "    model.add(layers.Dropout(dropout_rate, name=\"dropout_out\"))\n",
        "# model.add(layers.Dense(256, activation='relu', name=\"fc1\"))\n",
        "model.add(layers.Dense(2, activation='softmax', name=\"fc_out\"))"
      ],
      "execution_count": 16,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/layers/core.py:143: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version.\n",
            "Instructions for updating:\n",
            "Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`.\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "4iAX7AegDHUS",
        "colab_type": "code",
        "outputId": "3ed31603-826c-487d-b6cd-31e495240c57",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 290
        }
      },
      "source": [
        "model.summary()"
      ],
      "execution_count": 17,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "_________________________________________________________________\n",
            "Layer (type)                 Output Shape              Param #   \n",
            "=================================================================\n",
            "efficientnet-b0 (Model)      (None, 5, 5, 1280)        4049564   \n",
            "_________________________________________________________________\n",
            "gap (GlobalMaxPooling2D)     (None, 1280)              0         \n",
            "_________________________________________________________________\n",
            "dropout_out (Dropout)        (None, 1280)              0         \n",
            "_________________________________________________________________\n",
            "fc_out (Dense)               (None, 2)                 2562      \n",
            "=================================================================\n",
            "Total params: 4,052,126\n",
            "Trainable params: 4,010,110\n",
            "Non-trainable params: 42,016\n",
            "_________________________________________________________________\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "_N-F9Z-uDJAi",
        "colab_type": "code",
        "outputId": "595c49cc-434b-4a26-cef2-b5770c1e50b6",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 54
        }
      },
      "source": [
        "print('This is the number of trainable layers '\n",
        "      'before freezing the conv base:', len(model.trainable_weights))\n",
        "\n",
        "conv_base.trainable = False\n",
        "\n",
        "print('This is the number of trainable layers '\n",
        "      'after freezing the conv base:', len(model.trainable_weights))"
      ],
      "execution_count": 18,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "This is the number of trainable layers before freezing the conv base: 213\n",
            "This is the number of trainable layers after freezing the conv base: 2\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "SJHDUrjw2wRG",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1108
        },
        "outputId": "e70fbae8-c9e2-49af-d9d0-661d1dfef385"
      },
      "source": [
        "model.compile(loss='categorical_crossentropy',\n",
        "              optimizer=optimizers.RMSprop(lr=2e-5),\n",
        "              metrics=['acc'])\n",
        "history = model.fit_generator(\n",
        "      train_generator,\n",
        "      steps_per_epoch= NUM_TRAIN //batch_size,\n",
        "      epochs=epochs,\n",
        "      validation_data=validation_generator,\n",
        "      validation_steps= NUM_TEST //batch_size,\n",
        "      verbose=1,\n",
        "      use_multiprocessing=True,\n",
        "      workers=4)"
      ],
      "execution_count": 20,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Epoch 1/20\n",
            "21/21 [==============================] - 7s 354ms/step - loss: 1.6408 - acc: 0.4720\n",
            "42/42 [==============================] - 19s 443ms/step - loss: 1.8058 - acc: 0.5170 - val_loss: 1.6408 - val_acc: 0.4720\n",
            "Epoch 2/20\n",
            "21/21 [==============================] - 6s 302ms/step - loss: 1.5966 - acc: 0.4960\n",
            "42/42 [==============================] - 17s 394ms/step - loss: 1.8047 - acc: 0.5245 - val_loss: 1.5966 - val_acc: 0.4960\n",
            "Epoch 3/20\n",
            "21/21 [==============================] - 6s 303ms/step - loss: 1.5447 - acc: 0.5050\n",
            "42/42 [==============================] - 16s 388ms/step - loss: 1.8297 - acc: 0.5210 - val_loss: 1.5447 - val_acc: 0.5050\n",
            "Epoch 4/20\n",
            "21/21 [==============================] - 6s 299ms/step - loss: 1.4762 - acc: 0.5260\n",
            "42/42 [==============================] - 16s 388ms/step - loss: 1.6701 - acc: 0.5405 - val_loss: 1.4762 - val_acc: 0.5260\n",
            "Epoch 5/20\n",
            "21/21 [==============================] - 6s 308ms/step - loss: 1.4191 - acc: 0.5370\n",
            "42/42 [==============================] - 17s 400ms/step - loss: 1.6825 - acc: 0.5390 - val_loss: 1.4191 - val_acc: 0.5370\n",
            "Epoch 6/20\n",
            "21/21 [==============================] - 6s 304ms/step - loss: 1.3300 - acc: 0.5660\n",
            "42/42 [==============================] - 16s 391ms/step - loss: 1.5552 - acc: 0.5655 - val_loss: 1.3300 - val_acc: 0.5660\n",
            "Epoch 7/20\n",
            "21/21 [==============================] - 6s 307ms/step - loss: 1.2348 - acc: 0.5770\n",
            "42/42 [==============================] - 16s 390ms/step - loss: 1.6115 - acc: 0.5635 - val_loss: 1.2348 - val_acc: 0.5770\n",
            "Epoch 8/20\n",
            "21/21 [==============================] - 6s 303ms/step - loss: 1.1718 - acc: 0.6030\n",
            "42/42 [==============================] - 16s 391ms/step - loss: 1.5049 - acc: 0.5700 - val_loss: 1.1718 - val_acc: 0.6030\n",
            "Epoch 9/20\n",
            "21/21 [==============================] - 6s 303ms/step - loss: 1.1113 - acc: 0.6220\n",
            "42/42 [==============================] - 17s 396ms/step - loss: 1.5342 - acc: 0.5755 - val_loss: 1.1113 - val_acc: 0.6220\n",
            "Epoch 10/20\n",
            "21/21 [==============================] - 6s 300ms/step - loss: 1.0512 - acc: 0.6450\n",
            "42/42 [==============================] - 16s 389ms/step - loss: 1.4217 - acc: 0.5865 - val_loss: 1.0512 - val_acc: 0.6450\n",
            "Epoch 11/20\n",
            "21/21 [==============================] - 6s 290ms/step - loss: 1.0114 - acc: 0.6570\n",
            "42/42 [==============================] - 16s 386ms/step - loss: 1.4366 - acc: 0.5990 - val_loss: 1.0114 - val_acc: 0.6570\n",
            "Epoch 12/20\n",
            "21/21 [==============================] - 6s 291ms/step - loss: 0.9676 - acc: 0.6660\n",
            "42/42 [==============================] - 16s 387ms/step - loss: 1.3777 - acc: 0.5995 - val_loss: 0.9676 - val_acc: 0.6660\n",
            "Epoch 13/20\n",
            "21/21 [==============================] - 6s 294ms/step - loss: 0.9370 - acc: 0.6760\n",
            "42/42 [==============================] - 16s 384ms/step - loss: 1.3299 - acc: 0.6145 - val_loss: 0.9370 - val_acc: 0.6760\n",
            "Epoch 14/20\n",
            "21/21 [==============================] - 6s 272ms/step - loss: 0.9035 - acc: 0.6810\n",
            "42/42 [==============================] - 16s 385ms/step - loss: 1.3130 - acc: 0.6135 - val_loss: 0.9035 - val_acc: 0.6810\n",
            "Epoch 15/20\n",
            "21/21 [==============================] - 6s 298ms/step - loss: 0.8757 - acc: 0.6920\n",
            "42/42 [==============================] - 16s 384ms/step - loss: 1.2884 - acc: 0.6095 - val_loss: 0.8757 - val_acc: 0.6920\n",
            "Epoch 16/20\n",
            "21/21 [==============================] - 6s 303ms/step - loss: 0.8477 - acc: 0.7010\n",
            "42/42 [==============================] - 16s 388ms/step - loss: 1.1936 - acc: 0.6320 - val_loss: 0.8477 - val_acc: 0.7010\n",
            "Epoch 17/20\n",
            "21/21 [==============================] - 6s 278ms/step - loss: 0.8125 - acc: 0.7090\n",
            "42/42 [==============================] - 16s 385ms/step - loss: 1.1924 - acc: 0.6420 - val_loss: 0.8125 - val_acc: 0.7090\n",
            "Epoch 18/20\n",
            "21/21 [==============================] - 6s 293ms/step - loss: 0.8030 - acc: 0.7130\n",
            "42/42 [==============================] - 16s 380ms/step - loss: 1.2288 - acc: 0.6295 - val_loss: 0.8030 - val_acc: 0.7130\n",
            "Epoch 19/20\n",
            "21/21 [==============================] - 6s 275ms/step - loss: 0.7727 - acc: 0.7220\n",
            "42/42 [==============================] - 16s 376ms/step - loss: 1.1930 - acc: 0.6265 - val_loss: 0.7727 - val_acc: 0.7220\n",
            "Epoch 20/20\n",
            "21/21 [==============================] - 6s 308ms/step - loss: 0.7552 - acc: 0.7250\n",
            "42/42 [==============================] - 16s 392ms/step - loss: 1.1140 - acc: 0.6580 - val_loss: 0.7552 - val_acc: 0.7250\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "i90iKXuL3CHT",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 545
        },
        "outputId": "11dc236f-ea14-4915-d612-e443c2b5cb01"
      },
      "source": [
        "acc = history.history['acc']\n",
        "val_acc = history.history['val_acc']\n",
        "loss = history.history['loss']\n",
        "val_loss = history.history['val_loss']\n",
        "\n",
        "epochs_x = range(len(acc))\n",
        "\n",
        "plt.plot(epochs_x, acc, 'bo', label='Training acc')\n",
        "plt.plot(epochs_x, val_acc, 'b', label='Validation acc')\n",
        "plt.title('Training and validation accuracy')\n",
        "plt.legend()\n",
        "\n",
        "plt.figure()\n",
        "\n",
        "plt.plot(epochs_x, loss, 'bo', label='Training loss')\n",
        "plt.plot(epochs_x, val_loss, 'b', label='Validation loss')\n",
        "plt.title('Training and validation loss')\n",
        "plt.legend()\n",
        "\n",
        "plt.show()"
      ],
      "execution_count": 26,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\njTEmDv1/D0MA1S8t5VIAAAAASUVORK5CYII=\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "4gRv7SwYqT9f",
        "colab_type": "text"
      },
      "source": [
        "## Fine tuning last several layers."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "yKI8AJxQVB1Q",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "# multiply_16\n",
        "# set 'multiply_16' and following layers trainable\n",
        "conv_base.trainable = True\n",
        "\n",
        "set_trainable = False\n",
        "for layer in conv_base.layers:\n",
        "    if layer.name == 'multiply_16':\n",
        "        set_trainable = True\n",
        "    if set_trainable:\n",
        "        layer.trainable = True\n",
        "    else:\n",
        "        layer.trainable = False"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "FMjt8tCcDOoC",
        "colab_type": "code",
        "outputId": "a16c9223-01ff-4aa5-8005-58c4ab06196a",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1108
        }
      },
      "source": [
        "model.compile(loss='categorical_crossentropy',\n",
        "              optimizer=optimizers.RMSprop(lr=2e-5),\n",
        "              metrics=['acc'])\n",
        "\n",
        "history = model.fit_generator(\n",
        "      train_generator,\n",
        "      steps_per_epoch= NUM_TRAIN //batch_size,\n",
        "      epochs=epochs,\n",
        "      validation_data=validation_generator,\n",
        "      validation_steps= NUM_TEST //batch_size,\n",
        "      verbose=1,\n",
        "      use_multiprocessing=True,\n",
        "      workers=4)"
      ],
      "execution_count": 28,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Epoch 1/20\n",
            "21/21 [==============================] - 7s 353ms/step - loss: 0.7262 - acc: 0.7360\n",
            "42/42 [==============================] - 18s 424ms/step - loss: 1.1131 - acc: 0.6610 - val_loss: 0.7262 - val_acc: 0.7360\n",
            "Epoch 2/20\n",
            "21/21 [==============================] - 6s 283ms/step - loss: 0.7053 - acc: 0.7420\n",
            "42/42 [==============================] - 16s 377ms/step - loss: 1.1714 - acc: 0.6570 - val_loss: 0.7053 - val_acc: 0.7420\n",
            "Epoch 3/20\n",
            "21/21 [==============================] - 6s 283ms/step - loss: 0.6855 - acc: 0.7520\n",
            "42/42 [==============================] - 16s 380ms/step - loss: 1.0955 - acc: 0.6690 - val_loss: 0.6855 - val_acc: 0.7520\n",
            "Epoch 4/20\n",
            "21/21 [==============================] - 6s 295ms/step - loss: 0.6783 - acc: 0.7530\n",
            "42/42 [==============================] - 16s 377ms/step - loss: 1.0311 - acc: 0.6660 - val_loss: 0.6783 - val_acc: 0.7530\n",
            "Epoch 5/20\n",
            "21/21 [==============================] - 6s 288ms/step - loss: 0.6653 - acc: 0.7590\n",
            "42/42 [==============================] - 16s 374ms/step - loss: 1.0248 - acc: 0.6850 - val_loss: 0.6653 - val_acc: 0.7590\n",
            "Epoch 6/20\n",
            "21/21 [==============================] - 6s 283ms/step - loss: 0.6460 - acc: 0.7650\n",
            "42/42 [==============================] - 16s 374ms/step - loss: 0.9756 - acc: 0.6945 - val_loss: 0.6460 - val_acc: 0.7650\n",
            "Epoch 7/20\n",
            "21/21 [==============================] - 6s 284ms/step - loss: 0.6377 - acc: 0.7700\n",
            "42/42 [==============================] - 16s 374ms/step - loss: 1.0248 - acc: 0.6880 - val_loss: 0.6377 - val_acc: 0.7700\n",
            "Epoch 8/20\n",
            "21/21 [==============================] - 6s 283ms/step - loss: 0.6184 - acc: 0.7760\n",
            "42/42 [==============================] - 16s 376ms/step - loss: 1.0136 - acc: 0.6885 - val_loss: 0.6184 - val_acc: 0.7760\n",
            "Epoch 9/20\n",
            "21/21 [==============================] - 6s 288ms/step - loss: 0.6057 - acc: 0.7800\n",
            "42/42 [==============================] - 16s 372ms/step - loss: 0.9730 - acc: 0.6970 - val_loss: 0.6057 - val_acc: 0.7800\n",
            "Epoch 10/20\n",
            "21/21 [==============================] - 6s 293ms/step - loss: 0.5994 - acc: 0.7840\n",
            "42/42 [==============================] - 16s 374ms/step - loss: 1.0294 - acc: 0.6835 - val_loss: 0.5994 - val_acc: 0.7840\n",
            "Epoch 11/20\n",
            "21/21 [==============================] - 6s 280ms/step - loss: 0.5816 - acc: 0.7920\n",
            "42/42 [==============================] - 16s 374ms/step - loss: 0.9723 - acc: 0.6930 - val_loss: 0.5816 - val_acc: 0.7920\n",
            "Epoch 12/20\n",
            "21/21 [==============================] - 6s 283ms/step - loss: 0.5776 - acc: 0.7920\n",
            "42/42 [==============================] - 16s 375ms/step - loss: 0.9235 - acc: 0.7125 - val_loss: 0.5776 - val_acc: 0.7920\n",
            "Epoch 13/20\n",
            "21/21 [==============================] - 6s 294ms/step - loss: 0.5685 - acc: 0.7970\n",
            "42/42 [==============================] - 16s 376ms/step - loss: 0.9212 - acc: 0.7120 - val_loss: 0.5685 - val_acc: 0.7970\n",
            "Epoch 14/20\n",
            "21/21 [==============================] - 6s 296ms/step - loss: 0.5505 - acc: 0.8050\n",
            "42/42 [==============================] - 16s 376ms/step - loss: 0.9517 - acc: 0.7015 - val_loss: 0.5505 - val_acc: 0.8050\n",
            "Epoch 15/20\n",
            "21/21 [==============================] - 6s 282ms/step - loss: 0.5416 - acc: 0.8070\n",
            "42/42 [==============================] - 16s 371ms/step - loss: 0.9411 - acc: 0.7030 - val_loss: 0.5416 - val_acc: 0.8070\n",
            "Epoch 16/20\n",
            "21/21 [==============================] - 6s 275ms/step - loss: 0.5367 - acc: 0.8080\n",
            "42/42 [==============================] - 16s 372ms/step - loss: 0.9170 - acc: 0.7025 - val_loss: 0.5367 - val_acc: 0.8080\n",
            "Epoch 17/20\n",
            "21/21 [==============================] - 6s 290ms/step - loss: 0.5396 - acc: 0.8050\n",
            "42/42 [==============================] - 16s 385ms/step - loss: 0.8676 - acc: 0.7210 - val_loss: 0.5396 - val_acc: 0.8050\n",
            "Epoch 18/20\n",
            "21/21 [==============================] - 6s 269ms/step - loss: 0.5310 - acc: 0.8080\n",
            "42/42 [==============================] - 16s 374ms/step - loss: 0.9008 - acc: 0.7185 - val_loss: 0.5310 - val_acc: 0.8080\n",
            "Epoch 19/20\n",
            "21/21 [==============================] - 6s 287ms/step - loss: 0.5139 - acc: 0.8140\n",
            "42/42 [==============================] - 16s 384ms/step - loss: 0.8648 - acc: 0.7200 - val_loss: 0.5139 - val_acc: 0.8140\n",
            "Epoch 20/20\n",
            "21/21 [==============================] - 6s 276ms/step - loss: 0.5055 - acc: 0.8160\n",
            "42/42 [==============================] - 16s 378ms/step - loss: 0.9092 - acc: 0.7190 - val_loss: 0.5055 - val_acc: 0.8160\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "HvVt5TwoEDz6",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "os.makedirs(\"./models\", exist_ok=True)\n",
        "model.save('./models/cats_and_dogs_small.h5')"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "65AKWOGiHB5y",
        "colab_type": "code",
        "outputId": "cf4326af-90de-4224-fab2-f541c885b84b",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 545
        }
      },
      "source": [
        "acc = history.history['acc']\n",
        "val_acc = history.history['val_acc']\n",
        "loss = history.history['loss']\n",
        "val_loss = history.history['val_loss']\n",
        "\n",
        "epochs_x = range(len(acc))\n",
        "\n",
        "plt.plot(epochs_x, acc, 'bo', label='Training acc')\n",
        "plt.plot(epochs_x, val_acc, 'b', label='Validation acc')\n",
        "plt.title('Training and validation accuracy')\n",
        "plt.legend()\n",
        "\n",
        "plt.figure()\n",
        "\n",
        "plt.plot(epochs_x, loss, 'bo', label='Training loss')\n",
        "plt.plot(epochs_x, val_loss, 'b', label='Validation loss')\n",
        "plt.title('Training and validation loss')\n",
        "plt.legend()\n",
        "\n",
        "plt.show()"
      ],
      "execution_count": 30,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAEICAYAAACzliQjAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3XmcU9X9//HXh00EFBCwKrt1YV9H\ncAE3EHGDatGC2IpWabVoa2uVVqo8XKoWt2r5WlHcWgQpLmCr4oY/V5RBEQUUEFEHUAZkERFh4PP7\n49yBEGbJTDKTyeT9fDzymNx7z00+ucl8cnLuueeYuyMiItmhRroDEBGRyqOkLyKSRZT0RUSyiJK+\niEgWUdIXEckiSvoiIllEST8LmVlNM9tkZq1SWTadzOwQM0t5/2Mz629my2OWPzGzvomULcdzPWBm\nfy7v/iKJqJXuAKR0ZrYpZrEe8AOwPVr+lbtPKsvjuft2oEGqy2YDdz88FY9jZhcB57n78TGPfVEq\nHlukJEr6GcDddybdqCZ5kbu/VFx5M6vl7gWVEZtIafR5rFrUvFMNmNmNZva4mU02s2+B88zsKDOb\nbWbrzWyVmd1tZrWj8rXMzM2sTbT872j7c2b2rZm9bWZty1o22n6KmS02sw1mdo+ZvWlmI4qJO5EY\nf2VmS81snZndHbNvTTO708zWmtkyYGAJx+caM5sSt268md0R3b/IzBZFr+fTqBZe3GPlmdnx0f16\nZvavKLYFQM+4smPMbFn0uAvMbFC0vjPwD6Bv1HS2JubYjo3Z/9fRa19rZk+b2YGJHJuyHOfCeMzs\nJTP7xsy+MrOrYp7nL9Ex2WhmuWZ2UFFNaWb2RuH7HB3P16Ln+QYYY2aHmtms6DnWRMetYcz+raPX\nmB9t/7uZ1Y1ibh9T7kAz22xmTYp7vVIKd9ctg27AcqB/3Lobga3AGYQv8r2BI4DehF9zBwOLgVFR\n+VqAA22i5X8Da4AcoDbwOPDvcpTdH/gWGBxt+z2wDRhRzGtJJMbpQEOgDfBN4WsHRgELgBZAE+C1\n8HEu8nkOBjYB9WMeezWQEy2fEZUx4ETge6BLtK0/sDzmsfKA46P7twGvAo2B1sDCuLLnAAdG78m5\nUQw/irZdBLwaF+e/gbHR/QFRjN2AusD/Aa8kcmzKeJwbAl8DvwX2AvYFekXb/gR8ABwavYZuwH7A\nIfHHGnij8H2OXlsBcAlQk/B5PAzoB9SJPidvArfFvJ6PouNZPyp/TLRtAnBTzPP8AXgq3f+HmXxL\newC6lfENKz7pv1LKflcC/4nuF5XI/xlTdhDwUTnKXgi8HrPNgFUUk/QTjPHImO1PAldG918jNHMV\nbjs1PhHFPfZs4Nzo/inAJyWU/S/wm+h+SUn/i9j3Arg0tmwRj/sRcFp0v7Sk/wjw15ht+xLO47Qo\n7diU8Tj/HJhTTLlPC+ONW59I0l9WSgxDCp8X6At8BdQsotwxwGeARcvzgLNS/X+VTTc171QfX8Yu\nmFk7M/tf9HN9I3A90LSE/b+Kub+Zkk/eFlf2oNg4PPyX5hX3IAnGmNBzAZ+XEC/AY8Cw6P650XJh\nHKeb2TtR08N6Qi27pGNV6MCSYjCzEWb2QdREsR5ol+DjQnh9Ox/P3TcC64DmMWUSes9KOc4tCcm9\nKCVtK0385/EAM5tqZiuiGB6Oi2G5h04Du3H3Nwm/GvqYWSegFfC/csYkqE2/OonvrngfoWZ5iLvv\nC1xLqHlXpFWEmigAZmbsnqTiJRPjKkKyKFRal9KpQH8za05ofnosinFvYBpwM6HppRHwQoJxfFVc\nDGZ2MHAvoYmjSfS4H8c8bmndS1cSmowKH28fQjPSigTiilfScf4S+HEx+xW37bsopnox6w6IKxP/\n+m4l9DrrHMUwIi6G1mZWs5g4HgXOI/wqmeruPxRTThKgpF997QNsAL6LToT9qhKe879ADzM7w8xq\nEdqJm1VQjFOB35lZ8+ik3tUlFXb3rwhNEA8TmnaWRJv2IrQz5wPbzex0QttzojH82cwaWbiOYVTM\ntgaExJdP+P67mFDTL/Q10CL2hGqcycAvzayLme1F+FJ63d2L/eVUgpKO8wyglZmNMrO9zGxfM+sV\nbXsAuNHMfmxBNzPbj/Bl9xWhw0BNMxtJzBdUCTF8B2wws5aEJqZCbwNrgb9aODm+t5kdE7P9X4Tm\noHMJXwCSBCX96usPwPmEE6v3EU64Vih3/xr4GXAH4Z/4x8D7hBpeqmO8F3gZ+BCYQ6itl+YxQhv9\nzqYdd18PXAE8RTgZOoTw5ZWI6wi/OJYDzxGTkNx9PnAP8G5U5nDgnZh9XwSWAF+bWWwzTeH+zxOa\nYZ6K9m8FDE8wrnjFHmd33wCcBPyU8EW0GDgu2jwOeJpwnDcSTqrWjZrtLgb+TDipf0jcayvKdUAv\nwpfPDOCJmBgKgNOB9oRa/xeE96Fw+3LC+/yDu79VxtcucQpPjoikXPRzfSUwxN1fT3c8krnM7FHC\nyeGx6Y4l0+niLEkpMxtI6CnzPaHL3zZCbVekXKLzI4OBzumOpTpQ846kWh9gGaEt+2TgTJ14k/Iy\ns5sJ1wr81d2/SHc81YGad0REsohq+iIiWaTKtek3bdrU27Rpk+4wREQyyty5c9e4e0ldpIEqmPTb\ntGlDbm5uusMQEckoZlbaVelAgs07ZjbQwuQRS81sdBHbW0Uj6L1vZvPN7NRo/UlmNtfMPoz+nli2\nlyEiIqlUak0/6ms9nnABRx4wx8xmuPvCmGJjCJdH32tmHYBnCSP/rQHOcPeV0bgZMyn5snwREalA\nidT0ewFL3X2Zu28FphD6zMZywiiAEIZqXQng7u+7+8po/QJg7+iSchERSYNE2vSbs/uIeXmEsblj\njQVeMLPLCONh9y/icX4KvFdUn+1o7I6RAK1a7Tlu1rZt28jLy2PLli0JhCvpUrduXVq0aEHt2sUN\nJyMi6ZaqE7nDgIfd/XYzOwr4l5l1cvcdAGbWkTDK3oCidnb3CYRxPcjJydnjwoG8vDz22Wcf2rRp\nQxi4Uaoad2ft2rXk5eXRtm3b0ncQkbRIpHlnBbsPH9uCPYd3/SVhxEHc/W3CTD9NAcysBWHQqF+4\ne7nG5t6yZQtNmjRRwq/CzIwmTZro15hIFZdI0p8DHGpmbc2sDjCUMEperC+IhqONhm6tC+SbWSPC\nhAejo8kQyk0Jv+rTeyRS9ZXavOPuBWY2itDzpibwoLsvMLPrgVx3n0EYuvV+M7uCcFJ3hLt7tN8h\nwLVmdm30kAPcfXWFvBoRkQyyYwd88QV8/HG41asHI0dW7HMm1Kbv7s8SumHGrrs25v5CwlyW8fvd\nSJi/NaOtXbuWfv3CvBpfffUVNWvWpFmzcOHbu+++S506dUp9jAsuuIDRo0dz+OGHF1tm/PjxNGrU\niOHDyztsuohURZs2weLFIbF/8smuJL94McS2iB55ZBVJ+plm0iS45prwDdqqFdx0EySTR5s0acK8\nefMAGDt2LA0aNODKK6/crczOSYdrFN1i9tBDD5X6PL/5zW/KH6SIpJU7rFixe1IvTPJfxvR/rFED\n2raFdu2gf//wt107OPxwaFbqIArJq3YDrk2aFL4pP/88vAmffx6WJ01K/XMtXbqUDh06MHz4cDp2\n7MiqVasYOXIkOTk5dOzYkeuvv35n2T59+jBv3jwKCgpo1KgRo0ePpmvXrhx11FGsXh1au8aMGcNd\nd921s/zo0aPp1asXhx9+OG+9FSYM+u677/jpT39Khw4dGDJkCDk5OTu/kGJdd911HHHEEXTq1Ilf\n//rXFI6munjxYk488US6du1Kjx49WL58OQB//etf6dy5M127duWaa65J/cESqaa2bIH77w9Ju2XL\nkMhHjYJHHoENG+C44+DGG2HaNPjwQ/juO1i6FP77X7j9drj4YujbF/bfHyrltFhhDbWq3Hr27Onx\nFi5cuMe64rRu7R7S/e631q0TfogSXXfddT5u3Dh3d1+yZImbmc+ZM2fn9rVr17q7+7Zt27xPnz6+\nYMECd3c/5phj/P333/dt27Y54M8++6y7u19xxRV+8803u7v7Nddc43feeefO8ldddZW7u0+fPt1P\nPvlkd3e/+eab/dJLL3V393nz5nmNGjX8/fff3yPOwjh27NjhQ4cO3fl8PXr08BkzZri7+/fff+/f\nffedz5gxw/v06eObN2/ebd/yKMt7JZLJ1q93v+UW9wMOCDkmJ8f9nnvcX3nFfcUK9x07KjcewjnW\nUnNstWve+aKYaRaKW5+sH//4x+Tk5Oxcnjx5MhMnTqSgoICVK1eycOFCOnTosNs+e++9N6eccgoA\nPXv25PXXi55J8KyzztpZprBG/sYbb3D11WEO8K5du9KxY8ci93355ZcZN24cW7ZsYc2aNfTs2ZMj\njzySNWvWcMYZZwDhYiqAl156iQsvvJC9994bgP322688h0IkK6xaBXfdBf/8J2zcCCedFFoSTjih\nkmrqSap2Sb9Vq9CkU9T6ilC/fv2d95csWcLf//533n33XRo1asR5551XZL/12BO/NWvWpKCgoMjH\n3muvvUotU5TNmzczatQo3nvvPZo3b86YMWPUf14kSYsXw7hx8OijUFAAZ58NV10FPXqkO7KyqXZt\n+jfdFLo9xapXL6yvaBs3bmSfffZh3333ZdWqVcycOTPlz3HMMccwdepUAD788EMWLly4R5nvv/+e\nGjVq0LRpU7799lueeOIJABo3bkyzZs145plngHDR2+bNmznppJN48MEH+f777wH45ptvUh63SKaa\nMweGDAknW//1L7jwwvAFMGVK5iV8qIY1/cJeOqnsvZOoHj160KFDB9q1a0fr1q055pg9erEm7bLL\n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\nSUVORK5CYII=\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "bigZr9kjL2sY",
        "colab_type": "text"
      },
      "source": [
        "## Test predict"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "JWTv_-7CHqZB",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "cat_img = cat_images[-1]\n",
        "dog_img= dog_images[-1]"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "_VFoNC0TLzaf",
        "colab_type": "code",
        "outputId": "c89478d6-3629-48e1-e90c-ccc19073af33",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 393
        }
      },
      "source": [
        "Image(filename=cat_img)"
      ],
      "execution_count": 36,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a\nHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy\nMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAF3AfQDASIA\nAhEBAxEB/8QAGwAAAgMBAQEAAAAAAAAAAAAAAgMAAQQFBgf/xAA6EAACAgEDAwMCAwYFBAIDAAAA\nAQIRAwQhMQUSQRNRYSJxMoGRBhQjQqGxFTNSwdFi4fDxQ3IkNHP/xAAYAQEBAQEBAAAAAAAAAAAA\nAAAAAQIDBP/EAB8RAQEBAQEAAwEBAQEAAAAAAAABEQISITFBA1EyYf/aAAwDAQACEQMRAD8A8OoB\nUEkXRBKLSCSDSDQaDSJQaQAqAShTCSCoAaCSQaRaQFKASgEkEkBXYYMuNPpuqT4qZ06+kzYoLIs2\nFrZ3ZRl6djrpWl/L+51Wt2I9JYNPCGOO0K/ubGt2IE9gSgG1X2OVreqdj9PTbvzMJPl0W4QW7SCV\nTVrc8vPLOe85ts6vRNQ8rnjbutya34x1ez4J2bDaKaKhfZZOwKtglABLgShjhuV2bAVRfYHVF0Au\niKC9hlEoAeyJOz/pColALonYMolBSuwnYMoGiBfYShlFNALcCUMoqgFUVVjGiqAXQLgOoGgFNFND\naKoBDgU4bDWiqMhLRVDGgaNBbQLQ1oqjITQLQ1oBgLaAaHNANBCmgWhjRVAKaAcBrRTQCGinAa0A\n0Alw3IGQ0jakGkVB3dFzmsathkSM+TWQxzqroH/EcKlTs5upyfx24cMzrc5dfFrcOR1dP5NcGmtj\nza3NOLPmwP6Ha9mNXw79fBdGLT9Rx5Nsn0P+huhkhPhpmoyJINLYiI2ocsC0hqQl6jGoW5qjO+sa\nWF/XbXgo6FbGPE2smdJcWxGPrumf47RlydZwQeb0033t0yeoea3ZNTOeixzcErydk0t63OlnyQxW\n2zycOoZlBr+S7omfqOfWbTlt/cnuNeK2a3qM88/TxOoe/uZoY0kXgwbWzS8brxRMtb+mLIjf+zy/\n/OyL/o/3MjhW9fY6P7OY71WoyeySH6t+nfoGtmOoFwps24l1sRIJkoKFrcqg2RAVRaRP5w6ACiV8\nB0XQC6JQdbkoBdEoMjQCqJQdEoKW0Sg6JRAugaGUVQAUDQyiNALaBYdEaAXQNBsqgF0C0NaBaAW0\nBQ5oCgFspoZQDAXQDQ5oBoyFtANDGimgEtFNDGgKAW0A0NBYQutgGG0DQCmtyFtbkA3JAajH34xy\nQdWGHmssOzI7J+PHXlcHQ1+k/ngc9Wntycr8V15osdNGlKuBUObS2ZpSOvPy1Qen3i54543cG0/d\nGxQZWTH4uzV4ZIh1TVY1U5uuLKnq8mRpzm2gJwTdNbMwv1MU6W6Rzv8A615jVkbd7sCGO2XBOcLG\nNVzzyALgD6W+/A604p+5U0/HDIpOWe/YnuzXixq69jJDA1NTZuxNt3Reb8rjZjSgvrGTmq2uhbbh\nh7+fgtTXpqHLq2ej8Zhbh3o7H7PQXp6j370jk4JpycEtzt/s8v4eqVUvU/2Of6vf06yW4Th54YxI\njX2NuLK18EhDcdXsX2VwFKnDYCt0Nn/YjW5kClbCokFuGlt8gLaIH7g0BVEouqZGgAolBrYjW4Uu\niUHRKAXRK+kJolALoqhlFUAqimhlFNEC6BoZRVALoqhlAtALaKoYwKAW0VQxoCgAaBYwFmQpoFjW\ngKNBbQFDGimgFtAMYwGjKFtAMa0AzQWA0NaBaMhDW5A3yQDekEkRINI0wHJi74NM4Gs0/pZH4R6R\nGXW6ZZcbMdzYsrg4p9jo2Y/rx2jFNOGSn4NeBfw9r3McX8doZCabp8+zAn9bdzb+FsHBJPf+oE0m\n24brg7/hSGq2tCq33Vm6fY8apfqZWtzl2sAmlVbJsc4WtvIqePg26dXsZgyQxtVsSeTsyNeGdLUY\nFCEGlLgwZIfX3VaFIBfW6o3YEv5+BGOrNMIbbcElxs/0l2O3J29lfBT/AIDpQ/Hy2XB1sxz7ckHC\nvsdZ2zjNBJT+Wer6Xplg0i95u2cDHo975Z6PR5VjwQxvwhx83U/o19hOz9Q4VPdOwqOzizThuSh7\nhXICW9kCGtymqmPnAXNfWFDBBJBQX1h0Aqt+CUMojVAJrcjQ2gX+IBfYShlblUAFA0NolGVKoqg6\nJQCwaGUU0AuiqGUC0AuimhlFMBVFUMopogTRTQxoqgFsBobQNALrYB80NoFoBTQLQxoGgFNANDmg\nAhdANDGAwpbQLQxoBhC2gGMaKZkIa3IG1uQ0joJBpAoOgyJItwtUWkGkGnmuoaZ4811sK00+ydN7\nM9Hq9Ms+FnmsuN4sjgzh3MutSt08c8fIuDqLtbmvBkhk06V8c2Zcuz2Onr4dNA1ZTh4Y6Cv+X8i0\nu/IoUc2mRp2kqs36bGnO0uHTFPF2a2C82drp+j7+o5IU6mi8zWa2Z+l+roU62o4Gp0c4fw65PokN\nPWDsfFGDU9KxzfelT4O14Ynb55jxtZvTfg6WPE4RS9zRrOmT03Uls3CfDG5dFNz70+xI4+XbSFiI\nlXBpcILDTyJv7iU0/KtEw1twbpPydTBj78aMGjh6iOzpsVQOvDj2Ssc4P6HQ7Hnd1kjQ14xc8f5m\n4yc/wbb2DVCf8t7cDYTU1saRGv0KyLcJ7sk1uFDCHkui4LYOghaRK5DraiNbAJr6iqHUC0FLpFUM\nolbgLojQVEoyF0VQdEYCmiqGUU0FKopobQNALaBoa0C0AugKHNAUQLopoZQNALaAoa0DQC6AaGNF\nNAKaAaGtAtAJYDHNAMBTQLQygWghTQLQxoBoBbAGMFoBLW5A2tyGUyOhANIpDEaZRIJFpBJASrTO\nB1XTuGTvPRJHK6xC8Znvn4WORp5tKZbtsVin2OnwwJzan2eTlHaOlplCc99h96X1k/XUGi+n6Baj\nDO5XNrY8r1DBmxueOadwZuTDXrJ44ZdRhzYZwyJOnTPWdMxrae11yfJ9JrdXjnhcJqCww7IVBLa7\n39/zPovQOoLXaBZ0qmnU4GuIxbbHroK4C5qrZNNkWTHsBnf1pe52ZcvqOfTaTTZNVqF9GPj5Z4Lq\nHWcms0M8kMzx5Fmp4ILbsrm/ueo/azT5NXDBpcS8uZ53F+yeu1M0vRf3Rz/pv43Jpf7PYp63XQxz\nuacHdnbn0pwyTUG79j0fQ/2Xx9KwOc9881vXgZl00MU35bM+L+t+8+I5eg088GH6+TraeD7PkR6d\nNex0sGOomo50LXwLnA1tJRFdnJtGXsFTg4bwHZ5rGJWeDXKZkHDJ3pNDJq2zDO1PvgGtY1+NfmNG\ntKkGIx6nG9u8enFrZmkVQLWwyimtwFpEoY0BQUNEoIqgAoqg6JQAUBQyiqACiqGUDzdGVLojQdFU\nELoGhlFNBSmC0NaBaIFNA0NaAaAU0U1sNaAaAW0A1uNaAYC2AxjQDAWAxzQDQQpgMa0CzKlPgFjG\nrAZoLaFtDWCwhRC2tyGR0Ug0il+ENI0wtIYiktgkgCSoRrNP6+Fo1JBJWUeKz4pYszTLxQWVq/xo\n73VOnwnBzSpnAV4p/Y89mV15uuhp8mTT5FTo6s+l4eswvJDsyeZo5MHDUpVPsyex3ujZ/TydjlTX\nKOnHy1pWP9g4KFzz3fihPTNM+mdWz6VL+G1z8nucWWE8O/scbX4FCfrQS7/J18Z9Me9+z9Bnofny\n7nN0ndNX4Nqx+otja4k8EdTq8eZco7unxfQmcHBN49Qk7uzvYp1j5DNTPNKBxMr78zb4Rs1+dpUv\nJz4Y3ldIlpDcGP1c3wdJQ7EkBp8UMcNhzMBLW5TW3yMa9gJ2aHH6rCaham6+DzeTX5NM+O/5s9N1\nFNQt/g8tHgeod61c1Bvsfucu7jpxNegx9VSpTdWXl1anBtM8lPJmUuxvvh7exshq8mPHSck6J7Xw\n3ZeqvFLaw9P+0mqg6TTh7UcHUZJ5HvP9AMStE9r4j3mk/afSZElmm4T+VsdnFqMOoh34pqa90fLp\nqC5e5o0/U8+ja9HI4fBrn+n+s3j/AB9MZR5TRftbPZajDfyj0mk1mHWY+/FLb2NzqVi84fQP3QZV\nGkCyg6BoCqBDooACUWQyBoFoOigAaKoIqgpbRTGNAtAKBaGsGgEtFNDGgGQLYLQygGgFsBjGgGAt\ngtDWgGApoBjGimAlgMa0AwhbQAxgMBTW5AnyQDooYhcByDC0MQCDX4QCW4xAINFaSeNZFTPP9Q6P\nkU3kxq17HoyrT2bJeNTl4d4543umqNGDUZoPyz1Gp0mDLB7JP3PNanA8GZpXXyzheLw6S69f0fXv\nPpFb+tbbnQ1EPUw77nmehalqLxtwtPb5PUYsiqpqvsenjrYzXO0mRY808b2o3wyJGDqOgyd/7zo2\nvmBwX1TUvULD547PNjcduOPUes0E1qNbPfg7NuC2pfc5PSMUdHp++cryPdtmjJq07bdm45dffwDU\npZMi+uzTp8SVbGTG3lnfg247rnYyh+y8BLcGG45QTABq0A4WMnsLnPzwEc/U4k++1t5PnPVYenrZ\n41VX7n0bWZKg6e5846jD1NfOaRy/o6/zZOyK3YrI2/wb/YZnyfyIqoY8f13b4OLqzqE/OzG9jhwV\njffPcdXsBmePzO7Dxwt7IbOFvdh4scnunSKG6fSd86e256jpWi9Cmp8nG0+TDghtu/cfDqbg9k/7\nG5jFev8A4i9miLJF+KZzOn6zJnatqvazr+n5TpnTmuVmKKJdOp7Fm0U0CEQKAlFleTKBKDBChIyy\ngAZTLf4iqAB/iBaDZTIFMFhMpgAwWgmUwFtAMYAwFsFjGAwFtAMYwGAti2MYLCFMFoYxbAW1uQt3\nZAOlANAQQxBhaGIFBpBpZa3RKDSAiXwWl/4wlsWlZQLxpp7/AKHnep6drJe9ex6RvwhGXTQzwamj\nHU2LzXlsGSUMiknVcHcwdXyLD+DfxTMOt6c9O++Fv/Y1aNQy4Vah9kc+NjTZi6zkmmnNQ+4M9PDP\nmWec08i4dl/uGHJHuWw3B07Gqtto7bTRwtLsWRt/DNen0zv6238F4sUMdbG/Gk6KlHix0bMarwDC\nHA1fY0hkErpDf5BSVDN2t4lQpu2JyL6BzW4vO1jhZB57qOVY5/W2l7o8jr1j9RuE275bPSdV1F43\nKrg3X2PJ6nOnmp7vxZw7rvxC8em/nF58ffVT/I1Nt4/oB08O98bnNsvBpFDmxnpXaSVmhYrat/l7\nHS03TFOnNzaHM03HEeJJ7pW/Bff2OlBI72p6Xj9NvFbftPycfJjjj2aSn/Yt+EnyQ22J73Cez/Um\nWbg99n9xe735I06Og1M8WZO2j2/TtXPPhV7nzlTd7Pb2PRdD1s4NQc6RriufcexnDvXyJtNv3Rox\n/wATHuIyYuyd+Du5KIWUaRASMhlVAhAgUUECAJVFkAFgsJgsgFgBsAAGA0MYDAWymGwGAtgsNgMB\nbAY1gNALYDGMW0AtgMYwWghT5IW0rID4dFcBoBDEGBoNAINBoaCSpg2FZQS3ZbdRpFIiVsC4IYkU\ng0Bm1OnWfC4PY84+/Qaqnwz1tHN6n0+Gpx3BfWidz/FlFps8MkE00dDGrR5DTZc2gz9k/oS8M9Dp\n+oPsTq73M81XWhC/yHL6HZzoazJz2Uvk048jnwbHUxZE1uaUc7BNKJug9jSNEC2ykqVoBsIjnW5z\n+oT79Oxmp1Hp+Ti9U19YJ71MnprmPPdU1b754eU97ON6bbhtwxrm9Xrkm9mdjSdPc8nG2255rdr0\nc/Dj5E9oQtT+2x0dJoG8fH5nX0/R3dy/qdvTaCCpdo8Wpe5HE0fRrmpz3Oz+5Y4QrsWxvWNY1SFZ\n8igtpI688Y53vXN1E9Np4N5MlP2o8x1PLps83PHaZ6HUr1LhNqn/ACHl+o4I4m/4b7PezPbXDmZ4\nd/8AMHiXZtVfIht3S3+TZp4Xj4Obopwg5W/6eDp9OxLvTg687GJYG8iUN99jZgvT/wARwarzXH3L\nEr2OkmvTS7/r+/I+bhNcUzzOLqEMm3fTf6GzB1e5qGVq1/P7neWOF5dV7eShXqQyQ70/0CTtFRZC\nEAoEIEC2AWQACiyiCmCwmCwBYAbFvgCmAw2AwBYDDYDABgMPkBgC0Aw2A/whAMWxjAYUtgMNizKB\nfJCPkhodNIJAwCQYGgwEGg0tBoAKyhlkQCZaAdyg1+IWmGjQJBNWtvIKDQHJ6j05513qk15ZytPn\neKfp5Z7rg9W4d6pnF6p0/wD+bEkmjFn7GpWzT5Vkx15NEG8bTTPNaTX9k1CfN0jv4M7yLfdiVXUx\nZPq7rN+OfBycGS1ujfge1exYjowntySb2sTDjcmTJ2Q+DSOR1PIsinjTavweU1uoz08OV96gtnR6\nXXrHlnanU0jzHU24Y2p8+KOPVdeI5vTISerg/DZ9C0GmgsKSXg8N0bHeaE0vyPommx9mNJk4Ozce\nJDqUCJ/QZ9RljBbs6uYc+dJ9pxdfq4QTl3188oDW55pN99fNHltTqMjzNQyOvYx106c8t71mbLN0\n1XumZ8l5W1km/hgYP4aU3ActRCeSnCmuDlrpgMXR213/AKUdbT9Hfpp7V7MvR7qtvzPQ6fHNY1t/\nUvGVnu487qenqGPeFrh+6OPlzvTzq++/LPWdRxz7Hv2P2aPI6vE1m34fsa7+El0eKabuC+69wZzp\n1Bun4YukkrbVb7ATyenbu0YbdbpXUezIoTbo9AsqT3ezPF421NOH33PRafK9TobX44cM68X8cu47\nN2iGDp+sedPHk2yQ2N1m2FlMogFAN0rD8C8m7S92QX4iUWymUUAWUyCmKvdhgIKjYDYbFsIpgMNg\nMBYD/EGwHZkUwGGwGaAMBhsWzIW2VyEwGAtrchb5IaR0UGgEwgwYmFYtBBowtfICDRQaDQtBLgBi\nDFho0DQxMWg0UEiZManjnaXBEMW4Hjeq6fJix4s+LHdNXXBs0Wt+tb7vwdRYlk0sE1Z53qGDNo9Q\np41SbON+Go9Xjm9naN+nzpPc830rU+ov4mRufhHcxtXtwaK68GmthWrfZjffwBitJNMPUNTwNT4/\nsbR5jW6hY01drwzz/UNSm2jqdYg8c1TXJwtXjSXevP8AQ83VeiO7+y+mWWKyPg9xCFeDz/7Pab0u\nnYG1T7D0EFPs5OnDj3dqZJ0jjazWRm5wU1a8Wb9Xk7Mbfk8Pr87z6q15VNDu41xNatTnnk71jbT8\n+xiWmSXfvOfnY0rvx46XIpv1V2ZHTONrrHPz5Zzn2b/3Rr0emt34GQ0FytnS02kWNqjP226HT8C4\npHchDNjx0mq9mjm6OsdfB1oamDW0/wAmd+J8OHd+XKzrJNVN2vY87r9NCDbU7V8ex63UqGdOlv7H\nmuoQrvi1v7DteHnsi3pQr2M84Tg2a55N67ml7E71NKDpri/Y5OhOKcdj0nRF6neoc+UzgQx70el6\nNp3B2ka4+2e/pi1eX9z6isy2SdT+x34TU0mpbM53XdGssFkhtNrf4Zn6BrXlwPTZH9eLZfY7ON+t\ndqyFWSyojBJZCCrsjIUALKf4i2wGwKYHAQIVTALYLAFgMNgMIpi2GwGzIBlMtgMAWAw2AwAYDDYt\ngC+SEfJAjoJhikGmaYGmGgEGitCQaFp+waYBphIWGjQZsWgUGAaCFoZZQaGwe4lDYAczIu/RTT4t\noy9R0z1ODS780v6G7Hj9SGSD473/AHK1ONQWnh4U0jP5g89omtNrXjyTlXCR63T1OCfueU1ihg6h\nCaT2fk9JoM/qY0/Jz+rjf46uNuFb7F6t/wACbXNCoTGfjgaHiuoTyavvXZVeGcuHeodk15PTdT0U\n4ZO/GvucjPgmmnBbPZnD9d5/y9to0oYIJR2UFsbd673t8GTRUsONuW/YjVN/R9zvHBw+sax4sbr7\nHmsGOpvJOHPg9D1HEsmRnJ1C9PGoLn3OPdduJ8Meoz00ocPybNHpnNKfJkx4p6ifZ2f0PSaDRenB\nW6Mz5a3FQwPsut0FNRUOKrizXkSxK2rXuv8AcpqGTfHO/eDOkjGub++TwTV7L4N2PUQy/gfY/gxa\njFC3GhOObxOnuvkzq46/q5IPdpwMerxPLfYu+rq+fsT17SGucMi8Ka/8s1KzmPM6nSL+deefKMuP\nTzU6Uv8Auey1Gkw6iFzSTXL4s5uo0Dx3tb5TFjUrk4F/GUH/AD7HqumJY8Ntco4y0yycV342dj1P\nSx96fgvEZ7Hr8Sz6duHPD+543BlfT+sqc+L7J/Y9Pj1kPUmpu8eTeH/Bx+saRZ4OeNfXD+qN1mPQ\nJ2rLs5/SNQ8/Tsfe/rh9DNzYYXZH+ECyWATYLfsRsrwFC/uV2/8AUWUwBYLe5bAYEbBZfuUzIBgN\nhsB/iNIBgstgMyKuwG9y2CwBYLfuW34AaAGcxW73Da3KYAN7kKfJAOgg0LQSNMmoJMWgkUNTCTFJ\nhJoBiGIUmEaDLDQtB2FMQYpBpgNTGQEIZBlRzJ6vDp9W8aTnqJufZBPxfL+DNk1ufU6jSfQsWNu+\ny7bIsWaf7Qa/M4T9GGFQg/DbdsKcJ9mGbTUMcFV+7n/wiBPW9MlU7p2a+ltwaV7ewvrf+R+ZfTH2\nThSt0Yv23Pp302nTRowmeDb55H4whmXTQywpnM1HSFu1R2IPYHLuhZKstZdGv4a7+UaG7+xkwOu9\nezNeRqGOrJBydX9c6Ufk5ufSeu14aZ0tTq8OK7av2MGLUPLO+Ecunaafp9IsStbtbm+GphBVNJM5\nT1sMeTZql/Ux4+orJhcG13w4djcM12/313NQp/7icueDXfjXY73XscmeSeX64Psm+UvJcHOE/r/U\nl6WRvzzg0m7h8ox5Mk0rTg9wcuoXp9nleV5M2TUQSpSvbgixoWot0von7TJDWdk+x5P+xgnqJLHv\nTh47zFkyLvvHBwfO26Eo9Jj6g8t4ck6dbUZ9TqXgx15h4+DmYMvek2t0Dnyerz/U1qYeuodk3OD8\nUbf8QeTCpwdOt0cJ4mns9vA/HeNW+PLHpMOy6tuH0N1yvhjsXUbcO/7P7HNyOk1ewjv7J7iUseu6\ncuzPkcPwT8HQs8r0zqLx5oKb2T2fuj1PevyOmuNnysrglkNIlkYAVmVRi7CAYFMot/hAYFAkXBTY\nFNgNl2BYFMBhNgBAsFlsBgC92C+QmAwKbAZbAYAvkgLe5AN6YaYpMJM0yZYaF2WihqCQtBoBiYae\nwtMNMBiZdi7Ds0GJhWLQVgNTGwYhMZB7hSFkUNdkg+X/AMAdQb/dW/bck/8A93N/9V/YyW/8Nyq3\ns2BXWd9Pf08+RnTH/Gh70Z+s16eNO220O6ftrVFe25i/az6d9bM0QQheKHY2UaEBkdJhXsJyzqH2\nIrJp5tZs177mPqnUXCHZjaT9zTC/Rm/Mzl58EE3PJ4/qYrfMYseNuHfkfO9scm3SxgpvUZnSqC2o\n1OsUPk5fbq5WXTzcl4Fw03ZkV7X5OjlyqDTe1mHUajvhv/6M401VDHBNu17keeag4Jd+Otr8GKE5\n7xfDNenxub5p/wBwY5mXG55L4ofp8UOMrpM6TwQaTcOx3QvJp4NNKHIHOypY59k94eGZ8k4L4NeT\nFzCaezEPRzve9/cClkShcN0Iy5E4Jpbp2PyYPSS9mYcuJw+Uwyim3w/Nm5Tbw3z7oyaeG1ujRkg4\nQXZ4ZpC8vGy2Ms93f9DZBP03fIma2fv/AGKEr6E990e06dnWo0GHJ5qmeLyK2vnY9P8As5l79BPG\n+YTN8OfbsFMjBs6MCsogN/SAQDLAZkWA3sW/wi2BGwWRlMCmBN0i2wWADYLIymwimwGW2C2ALAYT\ne4DYANgtlti26ApvcgLe5DWI3JhpiUw0whqYaYpMtMByYSYpMNMoamGmJTDTAcmWLstMByZdibC7\nzSmpjYMzd+4yDAptfv0747EIeNYtDmXep3bJqPr1VJ13wW/5mTG3lhnb712QqmAvqOS9Vo4bbtN2\ndHQY71rffsvBytavU1XTqjvSd/kdfpH48k/mjF+2p9OxumvA2CFrjYPGEPXcYtbkUMbV8mpulycL\nrepWPBN3wFalnSwbbnL1CnlncqS9hfTNQ8uC33pPzMdqciT9zn26QGPswQfzwZ3lfnh8WDihkytt\n+fc249Ft3Nbvg5ujDODyQUGAtHO6Z1HpqXYua3Y392nkramvJk1hhpkod81wP9NQr03vydLFoJzX\nZNbM6OLpUE0+TU5qXuOHg0k883a5Olp+kWlfj3Ozp9FjxqjYsdLZHTn+f+ud/p/jhT6Jju+yxeTo\n0EqnBNHpFji17EeP4N+Ix7rwXVOjzx424fXjODk0c+5VFn1TLpsc7uHJycnRsLyOlsY6/n/jpP6P\nn2PBT3XJqxaSc6aja8nrX0KG6Uar+xp0/S4YG4NKmZnFavceN1PT8kF3pbM5mTA1mTS2n49j6bl0\nWOa7KW3B53X9Pww750k0zfhn28nDRzy7JcHV6Jinp5tTX40dGGDHiyY5pUnD/cVnzwwaiftBp/kW\ncJbreCB32iWaYE2SwGyrAZYLYvvKcwDbFzaSBcwHMyCsFsHviA5hBtgNgOYtz+TQPvAcxffS5Anl\nSW7oBjYLmZXq4K6mjPl1dLZmdi5W1sFzOTPqGTGvdi8fV7f1pDYZXXcxbmIhqIZIWmW52NieaNvc\ngh43fJBsTK6aYdiExiZpDky0xdl2FOTLTFphJlDUw0xNhJgPTCUxKZdgNsJMTYdgMv6hiYhMNMsF\nZ3Wrx78w/wBzLie+oXH/AIx2pf8AHxfZmXIoQc1iS9TJuybgRjmsuvwb/wCXgR2OlP6Z/c5um07x\nzm/ZUjf0ptY8l/6zH607UGPgzHCdv4NMHsaEyzqzyfXNQ8k+yH6notXl7MbPK62HqXMfYHp2pS+h\nT34c29/y9jtrGslJcnkMc82DN3pcHq+kfRBPK7yT3Zj7bldTTaCEEr5N0NMvYHHNbGrHwmXInouG\nkh7D4aaC8DYIdDngeYzoMeJIfCFy+SkqGpbWjeIKlW4S9mUnfNErcBnK3I2n+QFvcjNIKddohpXy\nMdPhi58X5ClzVCXB96sY3dEf4jIXdWed63NenkbdWjvaufp4J5Pbc8X1vqEZvsg91TFrcjnT17WB\nK7eN0K1mrvV97qskEmc3Ll5r8zPqdRPvT52OWtY9Z0vVrLolBu5432P/AGNjyI8X07qCwahPI6hP\naf8AyekW67uU/I9p4bfVX+oF5UZHt4JTbHs8HepDkr1UuEKqnvEpP2M+6s4hvqgPIDdlfce6niCc\n2A5sHjyDPJDHvN0PdXxFua5tCJ6jGlbmc/W6x5F243SONky5G7tseqeY9Dk1sPDs42s1GbJO+/b2\nRjWVrnYbvNc2PVTCP3ia23NWPLPKqsyZ00+B+kSvd0Ro+eJnOyQnjn5O8oQrg5esq9m0GTdM21Xc\nPeRwh+LgRosbdNmnUQXaaHPyayfe/rZDLlg/UZA09insXYrvZfqP/pN64+af37/Admfvl7BeoNPN\naS0xHqbcFrJ8GvR5rSi0zOpsvvkZ9Rcaky+9e5kTb5Ya+R7a8NHqRL9RCVskEie6eDvU/MD94n4S\n/Mqt+QG/ge6viKyZ5zabr6OANGr1GWd25z3DtTVf3BWJwn3wdMpjblbxqbXFDOkK9In/AK22cnUa\njVTXpwx997Kmeh0GneDS48b8IVPpoSqew9OoAKAWVqGOwywdQyJYXbOB6ScO7k3a3L6mbsb+hcmP\nPlh6DUH9dB0jFkTnk/hwTaf5I26PLPTK8jbm3z8m3R6fHDSY5v2tsrWafZUqQxnXa0WXvwwm/J0t\nPO/J5bSaxwhT2dJJHe0mW4L3oFjuYmuA9jHiyWh3qG2WhPZMtPftM/qcBwyWgh6/EMtCIT+Blb33\nbMA0+fJTd8AJFr3s0IU2Ru3wDNexkDUSN8tewIN8xAydRTelmtuD5br8s3qnd/RsfUNXkTTR8v6j\n3Q1WRPjvZz7deGN3V/kJy7qvYNN8fNlODb5ObTLDZ7o6mi6rPSLsmu/D7eV9jDODQlw3A9fp+oaX\nV/5eRN+z5NHH/B4h2qoYtZnW3rT/AFA9q6a5QDPHrX5+PUn+pP3zJO/rmn72F16x5EuXTEZNfghz\nkj9jyjyvzN19xc8q8MJruavq73WGl8s4+XU5JzvJNtme/dlu2ubAP94bdvcr1HMXw+bNGLjgDO07\n4NOnd7bC9RapOvyH6NJz3YRWrTUKV0IwfjOll+uDhj3B02iUN58lwOhkqFJXXsIyaTJqJ32UdBYk\nuEF9aX/YfAxY9PkxqlEqam7tG71GlVfmC3fI0cien+p7EOm8cLIQaEv/ALBJWCgvqNsDryVsUk2H\nBBVr7B17si54DSfkgi2YSKgvAa+j5DSc/wAofp+5E0uOSd5kTjgZdNfYBc8DMeNtpvyFFjhb3Vl5\nYfA2lW9i8tLi/gDFT9SlubMektfxDVp9PCCpK5rlmiGNJ7qzbFrJi0fZqFNt0vB2scKRl74d6pcG\nrHMsYurSpmPX5ezG6ZsnOoHB6rqdljXL5KRzJ3km+9y33ojxbBrins/sW4e3AdR4OoLHpFgy7OFU\n/DOn6mHU4+9Ti00cn07VP+wlaJLJ348k8fvTN6mNedpZkk6OrotWp5qXHB57JpM1X6834uheKefT\nZk3kdGEx7vHqVaSaNUMlqzyGn1srU2/J2dJ1BTSTfJpHahMZCdP7mXFkU1aY9fXH7hlrg/oDTMfe\n8b3Q9ZEyjQnX2Bc9yvU2v35Ac0vIBN+UL79tmJyZ0uGYMmsp1+gpje8rT9wHktWjE9bC6ns/kVl1\nPyiGGat2nWzPnPVXet1H/wDRnuXrLbhPk8p+0ukrItTBV37TMVuOJSaVeQnjbSoLFDgttqpeDk6M\n9FqG245q5tg9gCZqL/koS4UnsaprfyA34QGNY72VFvFS2Sv7jexr2I4ToqM014tkxwvlDXb2DhC2\nAE4bbIpQ33HuFx3f2Lx472sDI0+/ejRigPXTM+Sfsn5aOpp+nYMCTf1v5A4+TR5M9enD8zZpumRx\nxvI7Z2PTx9tEUIrdmhlWnUINwgl+QCVPhG1zglvMW5rwgE3f/FkbphN+65FPlexlB9+wDad3yW69\ngGvkCPsvggDW/kg1k9QS5CgCg0/JoFygkAmHBvgAklW4a2QKV+f1CVbpsNJdMNbkSUOSrt0uQCr9\nAofX8Ex47lvuPhDekBcIRHrbYBL7Bp/G5lRpey4FZ4WtlvzYXfTJ32FHos6cGp7TT3Rr0774b02c\n70k92tyscMmBt48j38Pc3KxeHUSSnuFPPDGuTnTz6mt3Dj2FLFPP/mzbXsthsMa8+vtNYk5z+DmP\nTZsuR5suzfhHQhjhjhUIpIua+dhrU5c700vFlNbVvt7mvJjVcbiXjfyXQmvfYtLdJedgnCvJu0Wi\nf+ZP8b/oNKWtHObotdGnP2O1gwdg5zhB0HPXA/wDJ21DIiYuj6vHt6io9Cpruv3DTXsDXK0+m1en\nTrIp273N2PU5oT+vG6+DWqGdkHtRWVLVwmqe/wBwXOC4YM8CfAHpNGhohl2qysmV1RlaaKc51yNa\nI1GWas5+XPka74U/hm3LPvVNHJyZHCbVGK1A5NZN49ra+eUIXUL+jJaryhOXUTg+El5Xgx586bpo\n521v4b8us7GnCe3t4E6zULV9Pmv51ujm5Mqh/q+4rHnnO0ls9i7UsJWRJfmKnP65wbNX7nPy9mX/\nAIc8jtfqLDScFODT5CeNm7H0yG1Tp/JrXTPfIvyM2NOG4PyhbW2x6B9KT4mmJfRFPdzihiODt5GK\nGzXbdnZ/wbCnvNt/A2Ggw44fgbLg8zkxNP8ABuNwafNka7Mc2elhgwrhJf3D9OnsBysGg85ElXg1\nwwYcX4McH7s01b3gDNqHwaQK+EgWmtqC79vf8gLt8fqAKg6dSKcG+XuWrsJpoAFjftuWobU/1DKc\n6CAcF9wPTXsG2A3sBHi8ipwGWmtrQAC6X/UQt88ohlka/QK/kAOq+DQLigla34Aj5GeALU6rllt+\n+yBtLkiXe7nwBatr4HwVcLYpK1VbfI5Jef6BoWNbKxyQtbO96CTTjsFNT2Ke/wBxf+xXfu6kZUe0\n35IvuS3SLTSfyBacOF+pbmmq5YC42L2v/cItK263HpJc8oGCVj7S3aNALX8n9S3xxwR7cblOqv8A\n3Mqk4bfQA8aXnyM2fN/cJVvwaGNQT1uHHeze53YQUIL2OLnTx5oZoP8AA915Oni1EMuHZ+DUc7Gl\nP1Hf8n9xixIz4skGl2MestFQ1QQWxz9R1PBpv87MlfjyBDqemmk1O7IuV0l9xqObDXpzax48jrzR\nf75kf/wzHo8Ol3lXfJi/eMn+ii3qMlbQ/qPZ4aX2meYDz5Kd41+olvM74X5j2vhMjRzNZOKTXk2Z\nFkrfJ9tjFl0kMjvJOb/Ma1jj6jJh5abfDRjWNz+iCc/Zex21osCe8P13G+hBLugq/I51XP03Sm98\nu/wbV0vAuFXwPSdNqy++T3NBS0WHwhkNNjg3cAraaJ6jCienhaqHHwL/AHeFP6NhqyNR2/qX3p7P\n+oGZ6ZKbV0vllPBkhvds2TqaSW4CtP8AAl9wYyP1OZpL7FL03snua53e1KxDxQbd7BC3gTe3kGen\nXFfmE4Tg/om69mDDK1/mIAXp1vzRFp4Vv+o1NTXP5WU1T2AX6EEr2YLxQ3aHN1zs2LbhW63AD014\n29xbx+EXPne2vuLb5p19wimlQl/iHEpJ+NwEVf5kcEMdcgOfunfuEK7GnsD2Dpz33QDbfgMltRv8\nJCOTv8JCi0w1T3SFqnHyGml+ZASWwV0gHtdcFL9QGJSnbCp/6fyBQ2CVbhYZDdWPTtU/zFQdBWg0\nN7KluiLZVuUm34pFt7X/AFApu+O4kE78/mDD6/e/gclS+fkCfV8/kW996+Ct97L+p+//ACBEp7IZ\nsqdWDVUlz8hq9/LAat91yhl7O0Kg3XgJvbcKJNk7KZdKuKK37gBpp+4ahsWluXs9l4AJUrtWLnp8\nM3dU37Oi1V0Nc1TaXHgDF/h1zbhmzY/tMKHT5wf16rPN+3ebIbUTvVr4Rdqgho8EHfZK35fJpUIQ\npUr+wHqff7ItZLe7Ih10i+/b3Efze5O/kzgd33wW5iHkhVKVhXxUgprfm6Fubb2Acyk/Pg0LnTXy\nKmmldWMc79qYM7a24CMjduv0CUFzwXkTezUWAqh5f2AjST3CVXsg7U6tp/YKFcXsAhucKVPgl7Pa\njU1B+LAa9kFZ73teS01vfgNw22FP6AglNcV+aIsl+XX2Kg9vuU0643CihNVah/UnO78i0snn+oxQ\n25Ak8aStOhXYq3THtoBpd6tbAZ3gb3SpiazQfH9Tf2Vf9xbh7KyoyOb4doq4PyaHj5+RE8afO5ER\nw/ID6eKJPGvegZ42uJgScLd0D2J7ukT61XAL7/ZP7BF+lvaRTx78gOc4eAXknvaKDcFQt88E75rf\nwLeS2AVP4IV3kIyzwfFB9++y3A+wVtv5+Ai+WGuIU6BgkhyaTtfYKFXfJpg1Wwuk9/6FJUw00+Ny\nJ72gFk8PZlTdPkBi2TaCc7rfYV3+3IyCVbgMXgKE63+fIFxvvDu99gLbfh/kT1dklyU6JjS5/qwq\n1PvY6D9//Qqk2qW9DVdN0AxQ7H3eQuXutwWnVrwEppsKl+bI51/wRpXaWxW1/wDIE9RrZIuGW3Tt\nFPbZcFw+fIDlPf3r5JvyokX0cSRadWu534QFU9iNP9C4O7v9A+XutgKuTdLYuE5tukTshW1F1Gkt\n39gKtpFwSrfkLZXVA37r8vYCU69g7+vj9WU3vRE9vkCPZ79qA2d3xZeSFoFd+4UW81xsRvZ0pFTy\nO0/7lp7pVyVC3O1vsK7O/h8GnIt+f+4tv2UV9yBFuD42GQm62dkfNvYq01tQDtmrW4F3/Lv8EhDx\ne/PBINJ7AA571RTT9xmzmuHZKSrzfkBDg+VVvgl1sy26asp9q8WvkCm9ti1Bvb8ylvXNIHvafABt\nU/sG53AR6lvb9S3Nc3uAfKe7J4+4vv2288gNpeeAunbK2/ADUGtuPAKy3txfJbVpe3sAl43fAv0j\nQnS339kA18hMZuH9gbdpLyap12boRkgmrX/sqFN73z4BfPIfY0vDF15IidnCXkCeNb7xoNtOHDQP\n0oozuDv8SIMc42QjLJGfdXaqSCT+tJEIVDE4xl2Vcn5HRSS3irIQiw1tJAxTlxsQhWxXuyOSIQC4\nu1sOvwQhBHkXBfc0rj9tyECK9Tbua3CjJbytqPsQhIp2OdSXbshidVvyQhpTldKuCNpS38IhAiLt\nv8TLtOLTb2IQirior8KphQ258kIALnbv2Lx5e+W90QhKpsaW/BPUVquSENIuc4r3ChO47fh9iEH6\nDUnK+1JWV309+WQhmqH1F39gTfuQgiK9TxfBT7vwRilaIQqhrvrx4GLL2eW6IQIXGfd+LZMr6ZK4\n2iEKEuEl9N7FQxur9yEIDfep+Cd0XUu75qiEAtZPCJ61J/SiELBNnDulDd+zAco01uiEAXXY9gW9\n6ZCERTl5rYrsve9iECqdJ15exKa27V7EIUC34ap/BP5K7nbIQIl0t/w+/kLubdf1IQFLm7VN8ANU\nq/MhAFzlvwZ3KXvsQgQPfu0U3fBCBktuN8EIQiP/2Q==\n",
            "text/plain": [
              "<IPython.core.display.Image object>"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 36
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "J4euiZSwLyZh",
        "colab_type": "code",
        "outputId": "a86a4189-2907-494e-9ad7-ea2d3dbbe5e7",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 393
        }
      },
      "source": [
        "Image(filename=dog_img)"
      ],
      "execution_count": 37,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a\nHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy\nMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAF3AfQDASIA\nAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA\nAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3\nODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm\np6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA\nAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx\nBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK\nU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3\nuLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDmxGyv\n04J4960LdCwxsHTvVfzduMDf24qaJpiwb7oz0z0rQxLsWn7ssdoB6irCWaIOMZxUUcj8nnHYkYqc\nzRxLvkbaPU0C1JwAqngFscmoZLc3A4yBnrUxnjDKI2DkjIoEpBI2FM9s8UAUntljfaMZ6kk9BTlt\nJJ4jJGB8p9etW32tt3FQx4NQTQ3PlGKJlVW6g8D69KBlSP7PICkcu9lbb06mlOFkIAUMD3bAwKdZ\n6bDYq7vKC7d04AH+PvTpomaTKoCMnqOakoQH+Py121KF81/lUFc4zmmqrLlQTtx1I4/WnxhmAIVs\njtQA1Qqlh5YU+ucUu0MpV9u0dFDck1IEcy/cJ7k+lTpBDyyKgkAxnjJFOwrlQR5+6CeMEkmlZHUD\n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\n",
            "text/plain": [
              "<IPython.core.display.Image object>"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 37
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "SLDHANW_HPVv",
        "colab_type": "code",
        "outputId": "ef740530-3bb9-45f8-9e96-2f60524622dd",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 54
        }
      },
      "source": [
        "from tensorflow.keras.preprocessing import image\n",
        "\n",
        "def predict_image(img_path):\n",
        "    # Read the image and resize it\n",
        "    img = image.load_img(img_path, target_size=(height, width))\n",
        "    # Convert it to a Numpy array with target shape.\n",
        "    x = image.img_to_array(img)\n",
        "    # Reshape\n",
        "    x = x.reshape((1,) + x.shape)\n",
        "    x /= 255.\n",
        "    result = model.predict([x])[0][0]\n",
        "    if result > 0.5:\n",
        "        animal = \"cat\"\n",
        "    else:\n",
        "        animal = \"dog\"\n",
        "        result = 1 - result\n",
        "    return animal,result\n",
        "\n",
        "print(predict_image(cat_img))\n",
        "print(predict_image(dog_img))"
      ],
      "execution_count": 38,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "('cat', 0.9974619)\n",
            "('dog', 0.9999910624692347)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "ogB16XX3eXaN",
        "colab_type": "text"
      },
      "source": [
        "## Download the model"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "H_3Zek4eeSXD",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "from google.colab import files\n",
        "\n",
        "files.download('./models/cats_and_dogs_small.h5')"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "n1rvrVx3CVN0",
        "colab_type": "code",
        "outputId": "aab036a8-9e6e-4ba2-9927-d4858bf8a229",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 35
        }
      },
      "source": [
        "model.input_shape"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(None, 150, 150, 3)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 43
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "j9O9mCbbVPWk",
        "colab_type": "text"
      },
      "source": [
        "## Load the model"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "rkBE5AZdwLki",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "from efficientnet.layers import Swish, DropConnect\n",
        "from efficientnet.model import ConvKernalInitializer\n",
        "from tensorflow.keras.utils import get_custom_objects\n",
        "\n",
        "get_custom_objects().update({\n",
        "    'ConvKernalInitializer': ConvKernalInitializer,\n",
        "    'Swish': Swish,\n",
        "    'DropConnect':DropConnect\n",
        "})"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "pURT5B8uVFgq",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "from tensorflow.keras.models import load_model\n",
        "model = load_model(\"./models/cats_and_dogs_small.h5\")"
      ],
      "execution_count": 0,
      "outputs": []
    }
  ]
}